﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LowLevelGraphics.Filter
{
    /// <summary>
    /// CannySimilar
    /// </summary>
    public class CannySimilar : MacroFilter
    {
        protected THRESHOLDING_MODE M_THRESHOLDINGMODE = THRESHOLDING_MODE.MIN_MAX;

        /// <summary>
        /// Initializes a new instance of the <see cref="CannySimilar"/> class.
        /// </summary>
        public CannySimilar()
            : this(THRESHOLDING_MODE.MEAN)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="CannySimilar"/> class.
        /// </summary>
        /// <param name="_MODE">The _ MODE.</param>
        public CannySimilar(THRESHOLDING_MODE _MODE)
        {
            M_THRESHOLDINGMODE = _MODE;
            this.FilterList.Add(new AdaptiveThresholding(M_THRESHOLDINGMODE));
            this.FilterList.Add(new Ranking());
            this.FilterList.Add(new LonelyHoles());
        }

        /// <summary>
        /// Gets or sets the THRESHOLDIN g_ MODE.
        /// </summary>
        /// <value>The THRESHOLDIN g_ MODE.</value>
        public THRESHOLDING_MODE THRESHOLDING_MODE
        {
            get { return M_THRESHOLDINGMODE; }
            set { M_THRESHOLDINGMODE = value; }
        }
    }
}
